package com.fh.fruit.service.baseareagoods;

import java.util.List;

import com.fh.entity.Page;
import com.fh.fruit.entity.areagooduser.AreaGoodUser;
import com.fh.fruit.entity.baseareagoods.AreaGoodsCount;
import com.fh.fruit.entity.baseareagoods.GoodsSpec;
import com.fh.util.PageData;

/**
 * 区域商品统计
 * 
 * @author Administrator
 * @version 2017.11.30 15:39
 */
public interface AreaGoodsCountManager {

	/**
	 * 区域商品列表
	 * 
	 * @param page page
	 * @return 区域商品列表
	 * @throws Exception Exception
	 */
	List<AreaGoodsCount> listAreaGoods(Page page) throws Exception;

	/**
	 * 新增区域商品
	 * @param pd pd
	 * @return 记录数
	 * @throws Exception Exception
	 */
	int saveAreaGoods(PageData pd) throws Exception;
	
	/**
	 * 新增区域商品
	 * 
	 * @param pd  pd
	 * @return 记录数
	 * @throws Exception Exception
	 */
	String insertAreaGoods(PageData pd) throws Exception;

	/**
	 * 删除区域商品
	 * @param pd  pd
	 * @return 记录数
	 * @throws Exception Exception
	 */
	int deleteAreaGoods(PageData pd) throws Exception;

	/**
	 * 通过id查询区域商品
	 * 
	 * @param pd  pd
	 * @return 区域商品
	 * @throws Exception Exception
	 */
	AreaGoodsCount findById(PageData pd) throws Exception;
	
	/**
	 * 根据基地id,统计区域数量
	 * 
	 * @param pd  pd
	 * @return 区域商品数量
	 * @throws Exception Exception
	 */
	int selectTotalAreaGoods(PageData pd) throws Exception;
	/**
	 *  验证是否存在同基地，同规格，同区域，同日期商品
	 * @param ag 入参
	 * @return 区域商品
	 * @throws Exception Exception
	 */
	AreaGoodsCount selectByConditions(AreaGoodsCount ag) throws Exception;
	/**
	 * 验证编码是否唯一
	 * @param pd  pd
	 * @return 数量
	 * @throws Exception Exception
	 */
	int selectTotalsByCode(PageData pd) throws Exception;
	/**
	 * 修改上下架状态
	 * @param pd  pd
	 * @return 记录数
	 * @throws Exception Exception
	 */
	int updateState(PageData pd) throws Exception;
	/**
	 * 区域商品详情列表
	 * 
	 * @param page page
	 * @return 区域商品详情列表
	 * @throws Exception Exception
	 */
	List<AreaGoodUser> listAreaGoodDetails(Page page) throws Exception;
	
	/**
	 *  删除区域商品详情
	 * @param pd pd
	 * @return 记录数
	 * @throws Exception Exception
	 */
	String deleteGoodDetails(PageData pd) throws Exception;
	/**
	 * 规则列表
	 * @param page page
	 * @return 规则列表
	 * @throws Exception Exception
	 */
	List<GoodsSpec> listGoodsSpec(Page page) throws Exception;
}
